package com.fh.shop.admin.util;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

public class RedisPool {
    //私有化无参构造 让他只能本类调用
    private RedisPool() {
    }

    //声明连接池
    private static JedisPool jedisPool;
    //初始化redis连接池属性
    private static void initPool(){
        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
        //连接池的总数量
        jedisPoolConfig.setMaxTotal(1000);
        //连接池空闲时的最大连接数量
        jedisPoolConfig.setMaxIdle(100);
        //连接池空闲时的最小连接数量
        jedisPoolConfig.setMinIdle(100);
        // 当获取连接的时候，验证连接是否可用
        jedisPoolConfig.setTestOnBorrow(true);
        // 当归还连接的时候，验证连接是否可用
        jedisPoolConfig.setTestOnCreate(true);
        // 创建连接池
        jedisPool = new JedisPool(jedisPoolConfig,"192.168.119.139",7020);
    }

    //在类加载的时候执行一次，静态块的特性
    static {
        initPool();
    }

    //外部调用的方法
    public static Jedis getConnection(){
        //获取连接池中的连接并返回
        return jedisPool.getResource();
    }
}
